Adding some more judges, here and there.
[and.git] / UVa / 100 - The 3n + 1 problem / Problem100.dpr
blobcab0694fe66cd24f40c8a087268118c8cd8800e6
1 \r
2 program problem100 (input, output);\r
3 \r
4 {$IFNDEF ONLINE_JUDGE}\r
5 {$APPTYPE CONSOLE}\r
6 {$ENDIF}\r
7 \r
8 var\r
9   i, j: integer;\r
11 function getCycleLength(N: integer): integer;\r
12 var k: integer;\r
13 begin\r
14   k := 1;\r
15   while N <> 1 do begin\r
16     if odd(N) then N := 3*N + 1\r
17     else N := N div 2;\r
18     k := k + 1;\r
19   end;\r
20   getCycleLength := k;\r
21 end;\r
23 function getMaxCycleLength(i, j: integer): integer;\r
24 var k: integer;\r
25   max, curCL: integer;\r
26 begin\r
27   max := 0;\r
28   for k:=i to j do begin\r
29     curCL := getCycleLength(k);\r
30     if curCL > max then max := curCL;\r
31   end;\r
32   getMaxCycleLength := max;\r
33 end;\r
35 begin\r
36   while not eof(input) do begin\r
37     readln(i, j);\r
38     write(i, ' ', j, ' ');\r
39     if i < j then\r
40       writeln(getMaxCycleLength(i, j))\r
41     else\r
42       writeln(getMaxCycleLength(j, i));\r
43   end;\r
44 end.\r